package org.lex.swing.maze;

import java.awt.Point;

public interface MazeModel {
	/*
	 * A maze is made up of walls and corridors(����). maze[i][j] is either part
	 * of a wall or part of a corridor. A cell that is part of a cooridor is
	 * represented by PATH, if it is part of the current PATH through the maze,
	 * by visited, if it has already been explored without finding a solution,
	 * and by empty if it has not yet been explored.
	 */
	public static final int WALL = 0;
	public static final int CORRIDORS = 2;
	public static final int VISITED = 3;
	public static final int PATH = 1;
	public static final int ENTRY = 4;
	public static final int EXIT = 5;
	public static final int BACKGROUND = 6;

	public void shuffle();

	/**
	 * Getters & Setters
	 */
	public void set(int row, int column, int value);

	public int get(int row, int column);

	public int getColumnCount();

	public int getRowCount();

	public Point getEntry();

	public Point getExit();
}
